﻿#!/usr/bin/env python3

import getopt
import sys


def main():
    '''getopt -   C-style parser for command line options
程序的输入参数分作3类,
1.短格式选项, 以'-'后接一个字母, 若还有参数,则后跟, 可以紧跟也可以间加空格
2.长格式选项, 以'--'后接一个字串, 若还有参数,则跟在'='后面
3.参数
通常参数出现出现在所有选项后.
getopt对于短选项, 指定这些字母的字串, 若其有参数则后跟':'.
对于长选项, 则指定字串list.
'''
    print(main.__doc__)
    print("="*30)

    try:
        #注意sys.argv[1:]让过了该py文件名
        #形如:  a30_getopt.py -h -oxxx -v --help --output=XXX
        opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
    except getopt.GetoptError as err:
        # print help information and exit:
        print(err)  # will print something like "option -a not recognized"
        #usage()
        sys.exit(2)
    output = None
    verbose = False
    print(opts)
    for o, a in opts:
        print(o,a)
        if o == "-v":
            verbose = True
        elif o in ("-h", "--help"):
            #usage()
            #sys.exit()
            pass
        elif o in ("-o", "--output"):
            output = a
        else:
            assert False, "unhandled option"    

if __name__=='__main__':
    main()
